home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / DNet / DGoDoc.h < prev    next >
Text File  |  1996-07-05  |  4KB  |  143 lines

  1. // DGopherDoc.h
  2. // d.g.gilbert
  3.  
  4.  
  5. #ifndef _DGOLISTDOC_
  6. #define _DGOLISTDOC_
  7.  
  8.  
  9. #include <DWindow.h>
  10. #include <DPanel.h>
  11. #include <DTableView.h>
  12. #include <Dvibrant.h>
  13. #include <DGoList.h>
  14. #include <DUtil.h>
  15.  
  16. class DGopher;
  17. class DFile;
  18. class DPrompt;
  19. class    DMenu;
  20. class DPopupList;
  21.  
  22.  
  23. class DGolistView : public DTableView
  24. {
  25. public:
  26.     DGopherList* fItems;
  27.     DGopher*    fDragGopher;
  28.     Boolean        fDragging;
  29.  
  30.     DGolistView(long id, DView* itsSuperior, DGopherList* itsItems,
  31.                             short pixwidth = 250, short pixheight = 200);
  32.  
  33.     virtual void Drag(Nlm_PoinT mouse);
  34.     virtual void Hold(Nlm_PoinT mouse);
  35.     virtual void Release(Nlm_PoinT mouse);
  36.     
  37.     virtual void SingleClickAt(short row, short col);
  38.     virtual void DoubleClickAt(short row, short col);
  39.     virtual void DrawCell(Nlm_RecT r, short row, short col);
  40.  
  41.     virtual void SetColWidths();
  42.     virtual void SizeToSuperview( DView* super, Boolean horiz, Boolean vert); 
  43.     virtual void Resize(DView* superview, Nlm_PoinT sizechange);
  44.     virtual void SetLineHeight( short item, DGopher* theGo);
  45.  
  46.     virtual DGopher* SelectedGopher();
  47.     virtual void OpenGopherLink(short gopherItem);
  48. };
  49.  
  50.  
  51.  
  52. class    DGopherListDoc : public DWindow, public DSaveHandler
  53. {
  54. public:
  55.     static Boolean gOptionIsOn;
  56.     static Boolean gFetchSingles;
  57.     static char* kGopherDocSuffix;
  58.     static Boolean IsGopherDoc(DFile* aFile);
  59.     static void  ProcessFile( DFile* aFile);
  60.     static DMenu * gViewChoiceMenu;        // app submenu
  61.     static DView * gLockWinMenuItem;  // app menu item
  62.     static void ReadItemInfo(DGopher* theGo);
  63.     static void ProcessGopher(DGopher* theGo, short itsViewChoice);
  64.     static Boolean ProcessGopherWithTest( DGopher* theGo);
  65.     static void NewNetdoc( DGopher* theGo, DTask* readTask);
  66.     static void NewGopherDoc();
  67.     static Boolean GopherByViewDialog(DGopher* go, DGopherList* itsList); 
  68.     static short DefaultGopherView(DGopher* aGopher);
  69.  
  70.     enum glTasks  { kGoListdoc = 210, kViewDefault, kViewChoiceMenu, 
  71.                                     kViewKindMenu, kViewByDefault, kViewByDate, kViewBySize, kViewByName,
  72.                                     kViewByKind, kViewByHost, kViewAsText, kViewAsLink,
  73.                                     cPushpin, cParentDrop, cParentPopup };
  74.     DGolistView    *    fGoview;
  75.      DGopherList *    fGolist, * fOldlist;
  76.      DList             *    fParentlist; // list of DGopherList ??
  77.      DGopher         *    fParent;
  78.      short             fFirststuff;
  79.     DPrompt            *    fStatus;
  80.     Boolean            fInUse, fPinned;
  81.     DPopupList    * fParentPop;
  82.     DIconButton * fStickpin; 
  83.  
  84.     DGopherListDoc( long id = 0);
  85.     DGopherListDoc( long id, DGopher* parentGopher);
  86.     DGopherListDoc( long id, DGopherList* activeList, char* name = NULL);
  87.     virtual ~DGopherListDoc();
  88.     virtual void Initialize( char* name);
  89.     virtual void SetInfoLine();
  90.  
  91.     virtual void Save(DFile* f) { WriteTo( f); } // DSaveHandler
  92.     virtual void WriteTo (DFile* aFile = NULL);
  93.  
  94.     virtual Boolean CanReadFrom( DFile*& aFile);
  95.     virtual Boolean CanReadFrom( DGopher* itsParent);
  96.     virtual Boolean ReadFrom(DFile* aFile);
  97.     virtual Boolean ReadFrom(DGopher* itsParent);
  98.     virtual void Open( DFile* aFile);
  99.     virtual void Open( DGopher* itsParent);
  100.     virtual void Open( Boolean haveData = false);
  101.     virtual void Close();
  102.  
  103.     virtual void ResizeWin();
  104.     virtual void Activate();
  105.     virtual void Deactivate();
  106.     virtual void ProcessTask(DTask* theTask);
  107.     virtual Boolean IsMyTask(DTask* theTask);
  108.     virtual Boolean IsMyAction(DTaskMaster* action);
  109.     virtual void ShowMessage(const char* msg);
  110.     virtual void MakeSubviews();
  111.     virtual void PinWindow(Boolean turnon);
  112.  
  113.     virtual void EmptyData(Boolean saveit= true);
  114.     virtual Boolean ReplaceData( DGopher* parentGopher, char* name, DFile* aFile);
  115.     virtual Boolean ReplaceData( DGopherList* parentlist);
  116.     virtual Boolean PopData( short numitems = 1);
  117.     
  118.     virtual void AddData(char* gopherData, long datalen);
  119.     virtual void UpdateListSize();
  120.     virtual void AddGopherToView( DGopher* aGopher);
  121.     virtual void TopOfGopherHole();
  122.     virtual void InsertNewGopher(Boolean editAll);
  123.     virtual void EditOldGopher();
  124.     virtual void CutClearSelection( Nlm_Boolean saveCut);
  125.  
  126.     virtual void SortView( DGopherList::Sorts sortorder);
  127.     virtual void ToTextDoc( Boolean ViewAsLink);
  128.     virtual void SetViewMenu(Boolean activate = true);
  129.  
  130. };
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137. extern  Nlm_RecT  gGopherListDocRect;
  138. extern  DGopherListDoc* gGopherDoc;
  139. extern     Nlm_Boolean gDoubleClicker, gSingleClicker;
  140.  
  141.  
  142. #endif
  143.